<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    function fn1() { console.log(1); }
    function fn2() { console.log(2); }

    // fn1.call(fn2); // 1
    // 让fn1执行，并且把fn1的this指向传的第一个实参
    fn1.call.call(fn2); // 2
   Function.prototype.call(fn1) ;// 不会输出任何东西

    // function call(){
    //   // this-->fn1.call-->call   context-->fn2

    //   context.$fn = this; // fn2.$fn = call
    //   context.$fn(); // fn2.$fn()--->call()
    //   //------------------------------------
    //   // call第二次执行
    //   // this -->fn2   context-->window
    //   context.$fn = this; // window.$fn = fn2
    //   context.$fn(); // window.$fn()-->fn2()
    // }
    // 如果call出现两次及以上，那最后执行的就是穿进去的实参


    //-----------------------------------------------------------
    Function.prototype.call(fn1);

    function call() {
      // context-->fn1    this-->Function.prototype-->原型
      context.$fn = this; // fn1.$fn = 原型
      context.$fn(); // fn1.$fn()==>原型()
    }

    function fn(){
      console.log(100);
    } 


  </script>
</body>

</html>